using BackData;
using Domain.DTOs.RBAC;
using MediatR;

namespace Team.API.Applocation.Command.Users.Roles
{
    /// <summary>
    /// 创建角色命令
    /// </summary>
    public class CreateRoleCommand : IRequest<APIResult<RoleDTO>>
    {
        /// <summary>
        /// 角色编号
        /// </summary>
        public string RoleCode { get; set; }

        /// <summary>
        /// 角色名称
        /// </summary>
        public string RoleName { get; set; }

        /// <summary>
        /// 角色描述
        /// </summary>
        public string? Description { get; set; }

        /// <summary>
        /// 排序号
        /// </summary>
        public int Sort { get; set; } = 0;

        /// <summary>
        /// 数据权限范围（1-全部，2-本部门及下级，3-本部门，4-仅本人）
        /// </summary>
        public int DataScope { get; set; } = 4;

        /// <summary>
        /// 自定义部门权限（部门ID集合，逗号分隔）
        /// </summary>
        public string? DeptIds { get; set; }

        /// <summary>
        /// 角色类型（1-管理员，2-普通角色，3-访客）
        /// </summary>
        public int RoleType { get; set; } = 2;

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
    }
}
